/**
 * Copyright (c) 快宝网络 kuaidihelp.com Co., Ltd. All Rights Reserved 禁止外泄以及用于其它的商业用途
 */

/* eslint-disable max-len */
/* eslint-disable import/no-extraneous-dependencies */
import React, { useState } from 'react';
import { Modal, Checkbox, Row, message } from 'antd';
import { confirmGpAuth } from '@/services/allocation';
import { useDispatch, useSelector } from 'dva';
import router from 'umi/router';

const ConfirmModal = ({ onOk, onCancel, visible, ...rest }) => {
  const { user = {}, router: currentRouter = {} } = useSelector(state => state);
  const { currentUser: { id } = {} } = user;
  const { location: { pathname } = {} } = currentRouter;

  const [checked, setChecked] = useState(false);
  const [loading, setLoading] = useState(false);
  const dispatch = useDispatch();

  const handelOk = () => {
    if (!checked) {
      message.warn('请勾选快宝共配软件服务协议！');
      return;
    }
    setLoading(true);
    confirmGpAuth({ id, status: 1 }).then(res => {
      if (res.code == 0) {
        dispatch({
          type: 'info/getInfo',
          payload: { source: 'correct' },
          then: () => {
            onOk && onOk();
          },
        });
      } else {
        message.error(res.msg);
      }
      setLoading(false);
    });
  };

  const handleCancel = () => {
    onCancel && onCancel();
    // 共配页面无权限则直接跳到首页
    if (pathname.indexOf('Allocation') >= 0) {
      router.push('/');
    }
    setChecked(false);
  };

  return (
    <Modal
      centered
      confirmLoading={loading || rest.confirmLoading}
      onOk={handelOk}
      onCancel={handleCancel}
      visible={visible}
      title="快宝共配使用指引"
      cancelText="拒绝"
      okText="同意"
      {...rest}
    >
      <Row>
        欢迎使用快宝（上海）网络技术有限公司旗下的快宝共配，在使用之前请仔细阅读本声明，若您不同意快宝共配软件条款的任一内容，请不要进行后续操作；若您不理解快宝共配描述的相关声明，可以添加官方客服微信（kuaibao233）咨询，一旦您选择“同意”并进行后续操作，即表示您同意遵循本协议条款所有约定的相关规范、规则和使用流程。届时您不应以未阅读本协议的内容或者未获得快宝共配对您问询的解答等为理由，主张本协议无效，或要求撤销本协议。
      </Row>
      <Row style={{ marginTop: 20 }}>
        <Checkbox
          checked={checked}
          onChange={e => {
            setChecked(e.target.checked);
          }}
        >
          我已阅读并同意
          <a href="/help/GpAgreement" target="_blank" rel="noreferrer">
            《快宝共配软件服务协议》
          </a>
        </Checkbox>
      </Row>
    </Modal>
  );
};

export default ConfirmModal;
